#include <cmath>
#include <iostream>

/*template<class T> inline std::ostream & operator<<( std::ostream & out, T & t) // affichage d'une classe ayant l'operateur de cast en string
{
    out << std::string(t);
    return out;
}*/

template<class T> inline T operator* (const double & a, const T & u) //inversion des operandes de la multiplication
{
    return u*a;
}

template<class T> inline T operator+ (const T & u,const T & v)
{
    T u1(u);
    u1 += v;
    return u1;
}

template<class T> inline T operator-= ( T & u , const T & v)
{
    T v1(v);
    u += -v1;
    return u;
}

template<class T> inline T operator- (const T & u , const T & v)
{
    T u1(u);
    u1 -= v;
    return u1;
}

template<class T> inline double norme(const T & u)
{
    return sqrt(u*u);
}
